package com.hjy.elasticsearch.elasticsearch.service;

import java.util.List;
import java.util.Map;

import io.searchbox.core.Index;
import org.elasticsearch.search.sort.SortOrder;

public interface ESService<T> {
	/**
	 * 单个新增
	 * @param t
	 * @return
	 */
	public Index saveEntity(T t);

	/**
	 * 批量新增
	 * @param entityList
	 */
	public void saveEntity(List<T> entityList);
	/**
	 * 多列查询
	 * @param searchContent
	 * @param index
	 * @return
	 */
	public Object searchmore(T t,String searchContent, String... index);
	/**
	 * 分页查询
	 * @param t
	 * @param pageNumber:第几页，从一开始
	 * @param pageSize:每页数量
	 * @param sort:排序的字段
	 * @param order:SortOrder.DESC  SortOrder.ASC
	 * @param searchContent：查询数据
	 * @param index：查询的列
	 * @return
	 */
	public Map searchPage(T t, int pageNumber, int pageSize, String sort, SortOrder order, String searchContent, String... index);
	/**
	 * 区间查询(不能查时间)
	 * @param t：实体类
	 * @param pageNumber：第几页，从一开始
	 * @param pageSize:每页数量
	 * @param sort:排序的字段
	 * @param order:SortOrder.DESC  SortOrder.ASC
	 * @param beginCompare:开始数据
	 * @param endCompare：结束数据
	 * @param index:字段
	 * @return
	 */
	public Map searchSectionPage(T t,int pageNumber,int pageSize,String sort,SortOrder order,String beginCompare, String endCompare,String index);
	/**
	 * 时间区间查询(只能查时间)
	 * @param t：实体类
	 * @param pageNumber：第几页，从一开始
	 * @param pageSize:每页数量
	 * @param sort:排序的字段
	 * @param order:SortOrder.DESC  SortOrder.ASC
	 * @param beginCompare:开始数据
	 * @param endCompare：结束数据
	 * @param index:字段
	 * @return
	 */
	public Map searchSectionPageByDate(T t,int pageNumber,int pageSize,String sort,SortOrder order,String beginCompare, String endCompare,String index);
}
